Modern communication networks support highly heterogeneous traffic, which may include movie downloading, messaging, file transfer, web traffic, and interactive traffic. Different types of traffic may have different traffic patterns and different requirements and constraints on network resources. A scheduler is commonly employed to schedule multiple flows for transmission over a specific transmission bandwidth. Network performance relies heavily on the performance of the scheduler.